Флаги не меняются.
Команда:
PUSH source.
Логика :
SP = SP - 2 (SP) = source.
Команда PUSH уменьшает значение указателя стека SP на 2, затем пересылает операнд в новую верхушку стека. Операндом source не может быть 8-битный регистр.
Операнды | Такт байты (слова) | Обращения | Байты | Пример |
регистр | 15 | 1 | 1 | PUSH BX |
сегм.регистр(кроме CS) | 14 | 1 | 1 | PUSH ES |
память | 24 + EA | 2 | 2-4 | PUSH PARAMETERS |
Примечание :
Даже если source указывает на байт, в стек пересылается целое слово. Микропроцессоры 80286 и 80786 перешлют в стек не те же значения, что микропроцессоры 8086/8088, если использовать команду PUSH SP. Микропроцессоры 80286 и 80386 перешлют старое значение SP, а 8086/8088 - новое значение SP в верхушку стека. Поэтому, в целях получения одинаковых результатов для всех микропроцессоров, используйте следующую последовательность команд:
PUSH BP MOV BP, SP XCHG BP, [SP]
Эта последовательность команд соответствует выполнению команды PUSH SP на микропроцессорах 8088/8086.